32位程序访问64位DLL,使用COM组件

一直纠结于微软所谓的32位程序不能访问64位dll或64位程序不能访问32位dll,MSDN上的说明也不能完全理解。


这两天纠结的问题终于需要直面了,有个项目需要转到64位平台上运行(需要超4G内存),但它是用VC6.0开发的,第一反应想到下面几个方式:

1,将VC6.0项目转到VS2005及以上,确实这样做了,报出一堆错误,真心不想debug这个了,太古老了。

2,VC6.0开发64位程序,虽然网上有总总描述(安装windows SDK 2003等等),最终还是放弃了,毕竟VC6.0太老古董了,折腾了伤不起,编译的程序稳定性也不能保证。

3,即使真心转成VS2005以上或VC6.0 64位开发版,某些第三方dll是32位的,不能用了,也找不到源代码,对方也不会再support了。

4,再写个64位的exe进行进程间交互,这种方式想想头都炸了。



艰苦奋斗了一个通宵,使用COM组件的方式终于被我搞定了。太开心了,激励并留念。


具体方式转载别人的,如下:

工作流程:
  1.创建一个进程外COM服务器(EXE)。
  2.将32位dll的接口函数封装为COM服务器的相关接口。
  3.注册COM服务器*.exe /regserver  (注销 *.exe /unregserver)。
  4.64位进程调用32位COM服务器接口,成功。从而曲线实现了64位进程调用32位dll。

  具体步骤:
  我首先创建了一个简单的dll工程,只输出一个函数int c = add(int a,int b); 生成lib和dll
  然后创建一个进程外COM(EXE类型),内部链接dll,添加方法Method: Add(long *c)
  { *c = add(1,2);}编译生成。
  然后注册COM,*.exe /regserver
  最创建一个64位WIN32工程验证64位环境下方法调用是否正确,经验证正确!!!

  结论:以上方法可以解决64位进程调用32位dll的问题

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 大华相机是指大华技术公司生产的相机产品吗?根据我了解,大华技术公司的相机产品并没有直接提供64位DLL。一般来说,相机的驱动程序和相关组件都是根据操作系统的要求来设计的。在64位操作系统下,一般需要使用64位的驱动和DLL文件来保证相机能够正常工作。但是在大华技术公司的官方网站上,并没有明确提供64位DLL文件。这可能意味着他们的相机产品在64位操作系统下可能需要使用32位的驱动程序DLL文件来工作。 然而,这并不表示大华技术公司的相机产品不能在64位操作系统上使用。通常情况下,如果相机驱动程序32位的,它通常也能在64位操作系统上正常工作。但在某些情况下,可能会存在兼容性问题,需要进行适当的调整或更新。 综上所述,就大华相机是否有64位DLL文件而言,当前的资料显示并没有明确的信息。如果你使用的是64位操作系统,使用相机时遇到了问题,我建议你可以联系大华技术公司的客户支持,寻求他们的帮助和建议。 ### 回答2: 大华相机在常用的操作系统(如Windows)上提供了64位的动态链接库(DLL)。这些64位DLL文件可以让人们在64位的系统上使用大华相机的功能和特性。与32位DLL相比,64位DLL可以充分利用64位系统的优势,提供更好的性能和稳定性。使用64位DLL文件可以使得大华相机在处理大量数据时更加高效,并且能够支持更多内存使用使用64位DLL还可以提供更好的兼容性和可扩展性,适应不同类型的应用程序和开发环境。总之,大华相机提供了64位DLL文件,可以满足不同用户在64位系统上使用大华相机的需求。 ### 回答3: 大华相机是一家知名的相机制造商,其产品广泛应用于各个领域。根据我在官方网站上的了解,大华相机的软件开发包(SDK)提供了适用于不同平台和操作系统的不同版本。例如,有适用于Windows 32位操作系统的dll文件以及适用于Windows 64位操作系统的dll文件。这些dll文件包含了用户能够与大华相机进行交互的功能和接口。 因此,根据我所了解,大华相机确实提供了适用于64位操作系统的dll文件,以满足不同用户的需求。用户可以通过访问大华相机的官方网站或联系其客服部门获取相关的64位dll文件,并据此进行软件开发和相机应用的操作。 请注意,以上回答仅基于我在官方网站上的了解,如果你需要更加详细和准确的信息,建议直接联系大华相机的官方渠道或相关技术支持部门进行咨询和确认。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值